//define([], function(){
(function(factory) {
	"use strict";
	if (typeof define === 'function' && define.amd) {
		define(factory);
	} else {
		window.$CTI_CONST = factory();
	}
}(function() {
		var CALL_STATE = {
		    CS_UNKONW : -1,
		    CS_IDLE : 0,
		    CS_RINGING : 1,
		    CS_TALKING : 2,
		    CS_HELD : 3,
		    CS_DIALING : 4,
		    CS_TALKINGHELD : 32,
		    CS_DIALINGHELD : 34
		};

		var CALL_TYPE = {
		    CT_UNKNOWN : 0,
		    CT_INBOUND : 2,
		    CT_OUTBOUND : 3
		};

		var AGENT_STATE = {
			EAS_UNKNOWN : 0,
			EAS_LOGOUT : 1,
			EAS_READY: 2,
			EAS_NOTREADY: 3,
			EAS_BUSY : 4
		};
		
		var AGENT_WORKMODE = {
		    AUTOIN : 1,
		    MANUALIN : 2,
		    AUX : 3,
		    ACW : 4
		};

		var CTI_MSG = {
				EVT_UNKNOWN : 0,
				EVT_RINGING : 1,
				EVT_ESTABLISH : 2,
			    EVT_RELEASED : 3,
			    EVT_OFFHOOK : 4,
			    EVT_ONHOOK : 5,
			    EVT_HELD : 6,
			    EVT_RETRIEVED : 7,
			    EVT_PARTYADDED : 8,
			    EVT_PARTYDELETED : 9,
			    EVT_DESTBUSY : 10,
			    EVT_ERROR : 11,
			    EVT_LINKCONNCTED : 12,
			    EVT_LINKCONNECTED : 12,
			    EVT_LINKDISCONNCTED : 13,
			    EVT_LINKDISCONNECTED : 13,
			    EVT_SERVERCONNECTED : 14,
			    EVT_SERVERDISCONNECTED : 15,
			    EVT_REGISTERED : 16,
			    EVT_UNREGISTERED : 17,
			    EVT_NETWORKREACHED : 18,
			    EVT_ABANDONED : 19,
			    EVT_DIALING : 20,
			    EVT_CONFERENCED : 21,
			    EVT_PARTYCHANGED : 22,
			    EVT_MUTED : 23,
			    EVT_UNMUTED : 24,
			    EVT_INTERCEPTED : 25,
			    EVT_BEINTERCEPTED : 26,
			    EVT_ADDRESSINFO : 27,
			    EVT_DISTRIBUTED : 28,
			    EVT_BESILENTMONITORED : 29,
			    EVT_ESCAPESERVICERESPONSE : 30,
			    EVT_GETDTMF : 31,
			    EVT_IVRMESSAGE : 32,
			    EVT_AGENTLEAVERESPONSE : 33,
			    EVT_AGENTSTATEOVERTIMEWARNING : 34,
			    EVT_PRIVATEMESSAGE : 35,
			    EVT_AGENTCANCELLEAVERESPONSE : 36,
			    EVT_SUPERVISORAGENTSTATEOVERTIMEWARNING : 37,
			    EVT_PREVIEWOB : 38,
			    EVT_RINGBACK : 39,
			    EVT_QUERYAGENTSTATERESPONSE : 40,
			    EVT_QUERYAGENTGROUPSTATERESPONSE : 41,
			    EVT_ZXINCTIPLAYCONTROLRESPONSE : 42,
			    EVT_CUSTEVENT : 43,
			    EVT_MULTIMEDIARINGING : 44,
			    EVT_MULTIMEDIAESTABLISH : 45,
			    EVT_MULTIMEDIARELEASED : 46,
			    EVT_MULTIMEDIAHELD : 47,
			    EVT_AGENTLOGIN : 70,
			    EVT_AGENTLOGOUT : 71,
			    EVT_AGENTREADY : 72,
			    EVT_AGENTNOTREADY : 73,
			    EVT_DATAUPDATED : 74,
			    EVT_PLAYSTARTED : 75,
			    EVT_PLAYSTOPPED : 76,
			    EVT_RECORDSTARTED : 77,
			    EVT_RECORDSTOPPED : 78,
			    EVT_MAX : 79
		};
		
		return {
			CALL_STATE : CALL_STATE, CALL_TYPE: CALL_TYPE, AGENT_STATE: AGENT_STATE, AGENT_WORKMODE: AGENT_WORKMODE, CTI_MSG: CTI_MSG
		}
}));